package top.jojoace.JPA.model_DDL.BothWay_OneToMany;


import lombok.Data;

import javax.persistence.*;


/**
 * JPA
 * 默认情况：
 * 类名：表名
 * 属性名：字段名
 */

/**
 * 定义JPA实体类，关联数据库表。
 */
@Entity
/**
 * @Table(name=”别名“) 设置别名
 */
@Table(name = "BWstudentItem")
@Data
/**
 * 该类为多端，即关系维护端
 */
public class BW_StudentItem {
    @Id
    private int id;

    /**
     * 设置数据类型等，如长度
     */
    @Column(length = 16)
    private String name;

    /**
     * 取消映射该字段
     */
    @Transient
    private int fadfafafa;

    /**
     * 用于指定外键。
     *
     * 在双向一对多时，无需手动添加该外键。
     *
     * 若要手动添加该外键则可在:
     *
     * @ManyToOne
     * @JoinColumn(name = "schoolId")
     * private School school;
     *
     * 的 @JoinColumn(name = "schoolId")
     * 修改为：@JoinColumn(insertable = false,updatable = false,name = "schoolId")
     * 使该列不包含在持久性提供程序生成的 SQL INSERT和UPDATE语句中
     */
//    private int schoolId;


    /**
     * 双向一对多
     * 获得 外键的实体类
     */
    @ManyToOne
    /**
     * @JoinColumn() 连接约束
     * @JoinColumn(name = "schoolId") 绑定当前表中的外键，获得外键实体类。同时在表中创建schoolId外键。
     *
     * <h3>不设置物理外键</h3>
     * <p>旧方法(被淘汰的)：</p> <code>@JoinColumn(foreignKey = @ForeigKey(value = ConstraintMode.NO_CONSTRAINT)) </code>
     * <p>新方法：</p><code>@JoinColumn(name = "schoolId",foreignKey = @ForeignKey(value = Cons))</code>
     */
    @JoinColumn(name = "schoolId")
    private BW_School school;

    private int age;
    private String sex;
}
